1. Field of the Invention
The present invention relates to systems and methods for analytically modeling data organized and stored in a relational database, and, more particularly, to analytically modeling data organized according to related attributes.
2. Description of the Prior Art
Online analytical processing (OLAP) is a key part of many data warehouse and business analysis systems. OLAP services provide for fast analysis of multidimensional information. For this purpose, OLAP services provide for multidimensional access and navigation of data in an intuitive and natural way, providing a global view of data that can be drilled down into particular data of interest. Speed and response time are important attributes of OLAP services that allow users to browse and analyze data online in an efficient manner. Further, OLAP services typically provide analytical tools to rank, aggregate, and calculate lead and lag indicators for the data under analysis.
In this context, an OLAP cube may be modeled according to a user's perception of the data. The cube may have multiple dimensions, each dimension modeled according to attributes of the data. Typically, there is a hierarchy associated with each dimension. For example, a time dimension can include years subdivided into months subdivided into weeks subdivided into days, while a geography dimension can include countries subdivided into states subdivided into cities. Dimension members act as indices for identifying a particular cell or range of cells within the cube.
OLAP services are often used to analytically model data that is stored in a relational database such as, for example, an Online Transactional Processing (OLTP) database. Data stored in a relational database may be organized according to multiple tables with each table having data corresponding to a particular data type. A table corresponding to a particular data type may be organized according to columns corresponding to data attributes. For example, data corresponding to the type “Sales” may be organized in a “Sales” table with columns “Ship-to Customer ID”, “Bill-to Customer ID”, and “Sale Quantity”. Furthermore, data corresponding to the type “Customer” may be organized in a “Customer” table with columns “Customer ID”, “Name”, “City”, and “State”.
The “Ship-to Customer ID” and “Bill-to Customer ID” attributes of the “Sales” table are related attributes because they both cross-reference the “Customer ID” attribute of the “Customer” table. For each ship-to customer, data corresponding to the customer's “Name”, “City”, and “State” is stored in the “Customer” table on the row having the ship-to customer's “Customer ID”. Likewise, for each bill-to customer, data corresponding to the customer's “Name”, “City”, and “State” is stored in the “Customer” table on the row having the bill-to customer's “Customer ID”.
One issue that arises with regard to analytically modeling data from a relational database is how to best take into consideration data with such related attributes. In existing methods for analytically modeling data with related attributes, a plurality of dimensions each provides data to one of the related attributes. For example, an OLAP cube may be modeled according to data stored in the “Sales” and “Customer” tables of a relational database. The cube may have a first dimension modeled according to the “Customer” type and providing data according to the “Ship-to Customer” attribute and a second dimension modeled according to the “Customer” type and providing data “Bill-to Customer” attribute.
Modeling two dimensions that each provide data to one of the related attributes is a complex and time-consuming process because, for each dimension, data must be retrieved from multiple tables. The complexity and time required to model the cube would be greatly reduced if, rather than having two dimensions that each provide data to one of the related attributes, the cube has a single dimension that provides data to both related attributes. Thus, there is a need in the art for a system and method for analytically modeling data with related attributes, the system and method having a single dimension providing data to a plurality of related attributes.